package com.internetCafes.spms.web.certificate.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.internetCafes.spms.web.certificate.entity.CertiTransactionInfo;
import com.internetCafes.spms.web.sys.model.ResourceInfo;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class CertificateInfoTestReq {

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 姓名
     */
    private String name;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 性别 0:未知 1:男 2:女
     */
    private Integer gender;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 学历
     */
    private String academic;

    /**
     * 职称
     */
    private String jobGrade;

    /**
     * 证书照片列表
     */
    private String certiPic;

    /**
     * 合同照片列表
     */
    private String constractPic;

    /**
     * 缴费凭证列表
     */
    private String payPic;

    /**
     * 部门名称
     */
    private String deptName;


    private String confType;


    /**
     * 有效期开始时间
     */
    private Date validityStartTime;

    /**
     * 非在职员工姓名
     */
    private String friendshipName;

    /**
     * 非在职员工联系方式
     */
    private String friendshipMobile;

    /**
     * 总费用
     */
    private double totalPay;

    /**
     * 延期费用
     */
    private double renewalPay;

    /**
     * 考试总费用
     */
    private double examPay;

    /**
     * 挂入人姓名
     */
    private String affiliationEmployeeName;

    /**
     * 挂出次数
     */
    private Integer borrowOutTimes;

    /**
     * 挂出天数
     */
    private Integer borrowOutDays;

    /**
     * 借出次数
     */
    private Integer transactionTimes;

    /**
     * 借出天数
     */
    private Integer transactionDays;

    /**
     * 空置率
     */
    private Double vacancyRate;

    /**
     * 排序值
     */
    private String orderBy;

    /**
     * asc正序，desc倒序
     */
    private String inOrder;

    /**
     * 是否在职:1在职，0离职
     */
    private Integer onCompanyFlag;

    /**
     * 离职时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date companyEndTime;

    /**
     * 是否挂入过
     */
    private boolean borrowedInFlag;

    /**
     * 资质列表
     */
    private List<ResourceInfo> certifInfoList;

    /**
     * 合同列表
     */
    private List<ResourceInfo> contractInfoList;

    /**
     * 支付凭证列表
     */
    private List<ResourceInfo> payInfoList;

    /**
     * 证书流转列表
     */
    private List<CertiTransactionInfo> certiTransactionInfoList;

    private String validityType;

    private Integer months;

    private Integer days;

    private Integer certificateCount;

    /**
     * 收支明细类型
     */
    private Integer type;

    /**
     * 收支明细日期
     */
    private Date balanceDate;

    /**
     * 收入明细
     */
    private int income;

    /**
     * 支出明细
     */
    private int output;

    /**
     * 挂出接收单位
     */
    private String toDeptName;

    /**
     * 挂出接收人
     */
    private String toUserName;

    /**
     * 挂出联系电话
     */
    private String toUserMobile;

    /**
     * 挂出时间
     */
    private Date transactionTime;

    /**
     * 挂出结束时间
     */
    private Date transactionEndTime;

    /**
     * 挂出收入
     */
    private Double affiliationIncome;

    /**
     * 挂出猎头支出
     */
    private Double borrowOutAgencyFee;

    /**
     * 挂出其他支出
     */
    private double otherFee;

    /**
     * 挂出是否打款
     */
    private Integer borrowOutPayFlag;

    /**
     * 挂出打款时间
     */
    private Date borrowOutPayTime;

    /**
     * 挂出打款是否税后
     */
    private Integer borrowOutTax;

    /**
     * 挂出费用说明
     */
    private String borrowOutFeeRemark;

    /**
     * 挂出备注
     */
    private String borrowOutRemark;

    /**
     * 借出项目名称
     */
    private String projectNames;

    /**
     * 是否支持押证、1-支持 0-不支持
     */
    private Integer warrantAble;

    /**
     * 押证标签 1是 0 否
     */
    private Integer warrantFlag;

    /**
     * 是否押人标签 1是 0 否
     */
    private Integer detaineeFlag;

    /**
     * 是否支持押人 0-不支持 1-支持
     */
    private Integer detaineeAble;

    /**
     * 证书表id
     */
    private Long id;

    /**
     * 证书类型 1在职员工,2挂靠，3非在职员工
     */
    private Integer certificateType;

    /**
     * 员工ID
     */
    private Long employeeId;

    /**
     * 证书类型大类
     */
    private String pIdType;

    /**
     * 证书类型小类
     */
    private String idType;

    /**
     * 专业
     */
    private String profession;

    /**
     * 挂入人
     */
    private Long affiliationEmployee;

    /**
     * 注册类型
     */
    private Integer registerType;

    /**
     * 证书名称
     */
    private String certificateName;

    /**
     * 证书配置ID
     */
    private Long certificateConfId;

    /**
     * 证书号
     */
    private String certificateNo;

    /**
     * 执业证书号
     */
    private String certifiedNo;

    /**
     * 发证日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String releaseTime;

    /**
     * 有效期结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validityEndTime;

    /**
     * 1长期有效,0非长期有效
     */
    private Integer longTerm;

    /**
     * 借入时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String borrowTime;

    /**
     * 借入到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date borrowEndTime;

    /**
     * 借入来源
     */
    private Integer borrowCandidatesSources;

    /**
     * 借入来源单位
     */
    private String borrowOrgName;

    /**
     * 借入联系人
     */
    private String borrowContact;

    /**
     * 借入联系人关系
     */
    private String borrowContactRelationship;

    /**
     * 借入联系电话
     */
    private String borrowContactMobile;

    /**
     * 最初保管单位ID
     */
    private Long oriKeepDeptId;

    /**
     * 最初保管单位名称
     */
    private String oriKeepDeptName;

    /**
     * 最初保管人ID
     */
    private Long oriKeepUserId;

    /**
     * 最初保管人姓名
     */
    private String oriKeepUserName;

    /**
     * 联系电话
     */
    private String oriKeepContactMobile;

    /**
     * 保管单位ID
     */
    private Long keepDeptId;

    /**
     * 保管单位名称
     */
    private String keepDeptName;

    /**
     * 保管人ID
     */
    private Long keepUserId;

    /**
     * 保管人姓名
     */
    private String keepUserName;

    /**
     * 保管联系电话
     */
    private String keepContactMobile;

    /**
     * 延期次数
     */
    private Integer renewalNum;

    /**
     * 延期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date renewalTime;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 状态:-1删除,0空闲,1挂出,21投标,22项目
     */
    private Integer status;

    /**
     * 返还时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date returnTime;

    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新人
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    /**
     * 考试时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date examTime;

    /**
     * 考试地点
     */
    private String examLocation;

    /**
     * 考试成绩
     */
    private Integer examGrade;

    /**
     * 人才费用
     */
    private double affiliationExpend;

    /**
     * 是否通过中介:1是,0否
     */
    private Integer agencyFlag;

    /**
     * 中介名称
     */
    private String agencyName;

    /**
     * 中介费用
     */
    private double examAgencyFee;

    /**
     * 考试是否通过中介:1是,0否
     */
    private Integer examAgencyFlag;

    /**
     * 考试中介名称
     */
    private String examAgencyName;

    /**
     * 考试中介费用
     */
    private double agencyFee;

    /**
     * 考试费用
     */
    private double examFee;

    /**
     * 费用备注
     */
    private String feeRemark;

    /**
     * 总费用
     */
    private Double totalFee;

    /**
     * 是否已经支付:1是,0否
     */
    private Integer payFlag;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date payTime;

    /**
     * 作废说明
     */
    private String enableRemark;

    private Long friendshipEmployeeId;

}
